/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package CapadeDatos;
import java.sql.CallableStatement;
import modelo.beanmodulo;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import modelo.beanusuario;
import proyectocatalina.Login;
/**
 *
 * @author hans
 */
public class DaoVerModulos {
public static List<beanmodulo> listaItem()   {
       Connection conexion=null;
        int I;
       try {
        //Connection cn = ConexionBD.getInstance().getConnection();
        //Statement stm = cn.createStatement();
        conexion=ConexionBD.getInstance().getConnection();
        String sql="call proc_onlymodulo()";
        Statement st=conexion.createStatement();
        ResultSet rs=st.executeQuery(sql);
        //List<beanmodulo> oListItem=new ArrayList<beanmodulo>();
           ArrayList lista = new ArrayList();
       while(rs.next())
            {
               beanmodulo modulo=new beanmodulo();
               modulo.setNombremodulo(rs.getString(1));
               lista.add(modulo);
            }
        return lista;
       }
       catch(Exception ex)
       {
           ex.printStackTrace();
           return null;
       }
       finally
       {
            try
            {
            conexion.close();
            }
            catch (SQLException ex)
            {
              ex.printStackTrace();
            }
       }
   }
public static List<beanmodulo> listaItem1()   {
       Connection conexion=null;
        int I;
       try {
        //Connection cn = ConexionBD.getInstance().getConnection();
        //Statement stm = cn.createStatement();
        conexion=ConexionBD.getInstance().getConnection();
        String sql="call proc_onlymodulo()";
        Statement st=conexion.createStatement();
        ResultSet rs=st.executeQuery(sql);
        //List<beanmodulo> oListItem=new ArrayList<beanmodulo>();
           ArrayList lista = new ArrayList();
       while(rs.next())
            {
               beanmodulo modulo=new beanmodulo();
               modulo.setNombremodulo(rs.getString(1));
               modulo.setCodmodulo(rs.getInt(2));
               modulo.setTipomodulo(rs.getString(3));
               modulo.setEstado(rs.getString(4));
               lista.add(modulo);
            }
        return lista;
       }
       catch(Exception ex)
       {
           ex.printStackTrace();
           return null;
       }
       finally
       {
            try
            {
            conexion.close();
            }
            catch (SQLException ex)
            {
              ex.printStackTrace();
            }
       }
   }
    private beanusuario User;

public void insertarmodulo(String nombremodulo, String descripcion ){
        Boolean verdad = false;
        ArrayList lista = new ArrayList();
    try{
            Connection cn = ConexionBD.getInstance().getConnection();
            Statement stm = cn.createStatement();
            String sql ="Call proc_registromodulo('"+ nombremodulo + "',"
                       + " '"+ descripcion + "');"; 
            User = Login.usuarioglobal;
            String sql3 = "Call proc_auditoria(?,?,?,?,?,?)";
            Connection cn4 = ConexionBD.getInstance().getConnection();
            CallableStatement insertauditoria = cn4.prepareCall(sql3);
            insertauditoria.setInt(1, User.getIdUsuario());
            insertauditoria.setString(2, "Periodo");
            insertauditoria.setString(3, "insertar");
            insertauditoria.setString(4, "nulo");
            insertauditoria.setString(5,nombremodulo+", "+descripcion);
            insertauditoria.setString(6,"nulo");
            if(stm.executeQuery(sql).wasNull()){
               verdad = false;
               JOptionPane.showMessageDialog(null,"NO INGRESADO");
            }
            else {
                verdad = true;
                insertauditoria.execute();
                JOptionPane.showMessageDialog(null,"INGRESADO");
            }
    }catch(Exception e){System.out.print(e);

}


}
public void actualizarmodulo(int codmodulo,String nombremodulo,String tipomodulo){
Boolean verdad = false;
    try{
            Connection cn = ConexionBD.getInstance().getConnection();
            Statement stm = cn.createStatement();
            String sql ="Call proc_actualizar_modulo('"
                 +  codmodulo +  "','"
                 +  nombremodulo +  "','"
                 + tipomodulo + "');";
            String datosnuevos = codmodulo + ", " + nombremodulo + ", " + tipomodulo;
            String sql4 = "Select cod_mod,nombre,descripcion from modulo where cod_mod = "+codmodulo+";";
            Connection cn4 = ConexionBD.getInstance().getConnection();
            Statement stm2 = cn4.createStatement();
            ResultSet rs =stm2.executeQuery(sql4);
            String datosantiguos =  "";
            while (rs.next()){
                datosantiguos = datosantiguos + rs.getString(1) + "," +
                rs.getString(2);                  
            }
            
            if(stm.executeQuery(sql).wasNull()){
               verdad = false;
               JOptionPane.showMessageDialog(null,"NO SE AH ACTUALIZADO");
            }
            else {
                verdad = true;
                User = Login.usuarioglobal;
                String sql3 = "Call proc_auditoria(?,?,?,?,?,?)";
                Connection cn5 = ConexionBD.getInstance().getConnection();
                CallableStatement insertauditoria = cn5.prepareCall(sql3);
                insertauditoria.setInt(1, User.getIdUsuario());
                insertauditoria.setString(2, "Modulo");
                insertauditoria.setString(3, "actualizar");
                insertauditoria.setString(4, datosantiguos);
                insertauditoria.setString(5,datosnuevos);
                insertauditoria.setString(6,"nulo"); 
                insertauditoria.execute();
                JOptionPane.showMessageDialog(null,"SE ACTULIZO CORRECTAMENTE");
            }
    }catch(Exception e){System.out.print(e);
   }
   }
public void bajarmodulo(int codigo){
        Boolean verdad = false;
        
        ArrayList lista = new ArrayList();
    try{
            Connection cn = ConexionBD.getInstance().getConnection();
            Statement stm = cn.createStatement();
            String sql ="Update modulo set estado = 'INACTIVO' where modulo.cod_mod = "+"'"+ codigo + "';";

            if(stm.execute(sql)){
               verdad = false;
               JOptionPane.showMessageDialog(null,"NO ACTUALIZADO");
            }
            else {
                verdad = true;
                JOptionPane.showMessageDialog(null,"ACTUALIZADO");
            }
    }catch(Exception e){System.out.print(e);
    JOptionPane.showMessageDialog(null,("Se ah presentado un error: "+"\n"+e+"\n"+ "Comuniquese con su administrador"));

}
}
}
